From: Yang Zhang Date: Fri, 20 Dec 2013 10:57:14 +0000 (+0100) Subject: Nested VMX: Setup the virtual NMI exiting info X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~5723 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22man:///%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22man:/?a=commitdiff_plain;h=136058cc5ce4f1e630d5bac199304fdc9429faa3;p=xen.git Nested VMX: Setup the virtual NMI exiting info When inject a virtual nmi exit to L1, hypervisor need to set the virtual vmcs with right vaule which is missing in current Xen. Signed-off-by: Yang Zhang Acked-by: Eddie Dong --- diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index 0daad79748..41db52be44 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -1293,6 +1293,12 @@ static void sync_exception_state(struct vcpu *v) nvmx->intr.error_code); break; case X86_EVENTTYPE_NMI: + __set_vvmcs(nvcpu->nv_vvmcx, VM_EXIT_REASON, + EXIT_REASON_EXCEPTION_NMI); + __set_vvmcs(nvcpu->nv_vvmcx, EXIT_QUALIFICATION, 0); + __set_vvmcs(nvcpu->nv_vvmcx, VM_EXIT_INTR_INFO, + nvmx->intr.intr_info); + break; default: gdprintk(XENLOG_ERR, "Exception state %lx not handled\n", nvmx->intr.intr_info);